home *** CD-ROM | disk | FTP | other *** search
- /* $Id: rdalloc.h 1.9 1997/04/16 18:42:57 Emil Exp $ */
- #ifndef __RDALLOC__
- #define __RDALLOC__
-
- void RDCollect();
- void *RDmallocLeaf(unsigned long size);
-
- void* RDmalloc(unsigned long size);
- void* RDcalloc(unsigned long nmemb, unsigned long size);
- void* RDrealloc(void* ptr, unsigned long size);
- void RDfree(void* ptr);
-
- short RDRegisterPool(short size);
- void *RDmallocUsePool(short poolID,long size);
-
- void InitAllocator(void);
-
- void *RDHighmalloc(unsigned long size);
- void RDHighfree(void *ptr);
-
- enum MemStatus {kMemOK, kMemRetry, kMemCancel};
- typedef MemStatus (*MemChecker)(void*, unsigned long, void*);
-
- void SetMemChecker(MemChecker checker, void* priv);
- //void GetMemChecker(MemChecker& checker, void*& priv);
-
- class CWhileInMemCheckerDisable {
- public:
- CWhileInMemCheckerDisable();
- ~CWhileInMemCheckerDisable();
- void Clean();
- protected:
- void * fWasDisabled;
- };
-
-
- unsigned long RDMaxBlock();
- unsigned long RDFreeMem();
-
-
- //debug only
- //remember that it doesn't necessarily catch everything
- //something else can be reallocated at the same place.
- int RDIsPointerValid(void* ptr);
- #endif
-